博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营-70-asp.net简单练习(文件的上传和下载)
阅读量:5140 次
发布时间:2019-06-13

本文共 4656 字,大约阅读时间需要 15 分钟。

大文件的上传一般通过FTP协议,而一般小的文件可以通过http协议来完成

1 通过asp.net 完成图片的上传

1.1 创建html页面

  注意:1 method="post" ;2 enctype="multipart/form-data"; 3 <input type="file" />  

FileUpload.html

1.2 创建一般处理程序.ashx

  注意:1 创建文件保存路径

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
FileUpload.ashx

2 上传文件格式的验证,假设规定只能上传,gif的图片

  我们可以在HTML通过jQuery来进行验证,也可以在.ashx中进行验证

2.1 修改ashx文件

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" || extName != ".Gif")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload/"+pf.FileName);            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件            context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

2.2 引入jQuery,修改HTML页面

html

3 如果文件只放在Upload文件夹下,随着时间的增长,文件势必会越来越多不利于寻找,可以根据日期建立相应文件夹

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileUpload 的摘要说明    ///     public class FileUpload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/html";            //01 获取文件            HttpPostedFile pf = context.Request.Files["imgUpLoad"];            //01-01 获取文件后缀名            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf('.'));            if (extName != ".gif" && extName != ".GIF")            {                context.Response.Write("请上传.gif图片");                return;            }            //02 创建文件保存路径            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory+"Upload\\");            //02-01 根据日期创建文件夹            DateTime dt = DateTime.Now;            savePath += dt.Year + "\\" + dt.Month + "\\" + dt.Day ;            if (!Directory.Exists(savePath))            {                //创建文件夹                Directory.CreateDirectory(savePath);            }            //02-02文 件名为当前时间                        savePath += "\\"+ dt.ToString().Replace(':','-')+".gif";            //03 保存文件            pf.SaveAs(savePath);            //04 显示上传的文件             context.Response.Write(" ");        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

4 文件下载

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;namespace _05_文件的上传与下载{    ///     /// FileDownload 的摘要说明    ///     public class FileDownload : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            string f = context.Request["f"];            context.Response.ContentType = "application/octet-stream";            context.Response.AddHeader("Content-Disposition","attachment;filename=\""+f+"\";");            context.Response.WriteFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,f));        }        public bool IsReusable        {            get            {                return false;            }        }    }}
ashx

转载于:https://www.cnblogs.com/YK2012/p/7009993.html

你可能感兴趣的文章
mac中使用vi修改二进制文件
查看>>
css3 box-sizing属性
查看>>
copy_from_user 详解
查看>>
spring-AOP(面向切面编程)-注解方式配置
查看>>
Sping
查看>>
UI design principle android 系统根据不同屏幕密度选择不同图片
查看>>
GridView 动态列上方添加相应的Combox等控件
查看>>
申请开发者账号
查看>>
oracle启动
查看>>
c++模板学习
查看>>
【转】MySQL Event
查看>>
[转]html5监听任何App自带返回键javascript事件
查看>>
mongodb数据备份与还原
查看>>
通俗理解LDA主题模型
查看>>
回射服务器-多路复用 select 01 (阻塞)
查看>>
分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享
查看>>
BitmapData.noise示例
查看>>
肤色阈值分割
查看>>
Android中的菜单
查看>>
【最短路】Vijos P1046 观光旅游
查看>>